#pragma once
#include "Vertex.h"

class CRenderer;
class CPrimitive
{
public:
	CPrimitive(void);
	virtual ~CPrimitive(void);

	virtual void Transform(const CMatrix4& matTransform) = 0;
	virtual void Rasterize(CRenderer* pRenderer) = 0;

	virtual CVertex& GetVertex(int idx) = 0;
};

typedef boost::shared_ptr<CPrimitive> CPrimitivePtr;